1. Field of the Invention
The present invention relates generally to data management, and more particularly, but without limitation, to the management of data in a computer system.
2. Description of the Prior Art
Computer systems may include different resources that may be coupled to and used by one or more host processors. Resources and host processors may be interconnected by one or more communication connections. Data is transmitted in a computer system from component to component and even from computer system to computer system in a computer network. Further data is stored on and operated on in the host processors and in the resources, which may include, for example, data storage systems that provide storage services to each host processor.
An example data storage system may include one or more data storage devices that are connected together and may be used to provide common data storage for one or more host processors in a computer system. Data storage systems may also have cache memory connected to the data storage devices for storing frequently accessed data for rapid access. Typically, it is time-consuming to fetch or compute data stored in the data storage devices. However, once data is stored in the cache memory, future use can be made by accessing the cached copy rather than re-fetching or re-computing the original data, so that average access time to data may be made lower.
Many approaches have been developed for protecting critical data, whether transmitted in a computer system or network or stored in a data storage system, against loss resulting from power failures or transients, equipment malfunctions and other causes. In one approach, all of, or selected portions of, the stored data can be transferred to tape or other backup media thereby to provide backups of the resources such as the cache memory system by providing a “snapshot” of the resource at the time of the backup. In the event of a data loss, the backup copy could then be used to restore the data to the operational digital data system. However, the time to complete such a backup may be extensive. It may also take a significant time to restore the information, particularly if a storage system, such as a disk drive, fails completely.
In data processing systems that require essentially full-time availability and that incorporate large memory systems, data restoration may involve providing backup power, such as batteries, to the data system so that, upon power loss, data stored in more volatile memory systems can be written onto storage devices such as disks involving less volatile data storage. Once power is restored, the memory tables can be rebuilt. However, when the batteries are deflected or have failed, and the system is not provided sufficient time and power to store the data onto storage devices such as disks, it may be necessary to recover the meta-data on an entry by entry basis.
During typical operation of a data storage system, only about 5-10% of the data files are active at a time. Typically, also, only the data files that are active at the time of a system crash face corruption due to the crash. Therefore, only a small percentage of the data files in the cache memory are potentially corrupted. The vast majority of the data files, which were not active at the time of the crash, are not likely to have been corrupted and do not need to be retrieved from the data storage devices and rewritten into the cache memory. Repopulating the entire cache memory means that significant time and effort will be taken to retrieve data that does not need to be retrieved. Therefore, it is should not be necessary to repopulate the entire cache memory after a potential data corruption.
It is therefore advantageous to restore critical data with minimal interruption to normal operation of the computer system or network or access to the data stored in the data storage system.